package com.cms.work.service.sys;

import java.util.List;
import java.util.Map;

import com.cms.work.core.service.BaseService;
import com.cms.work.entity.enums.CommonEnum.UserStatusEnum;
import com.cms.work.entity.sys.SysUser;
import com.cms.work.entity.sys.vo.ResetPasswordVO;
import com.cms.work.entity.sys.vo.ResourceRelationVo;
import com.cms.work.entity.sys.vo.SysRoleResourceVo;
import com.cms.work.exception.SystemException;
import com.github.pagehelper.PageInfo;

/**
 * @describe 用户管理模块 
 * @author YY
 * @version v1.0
 * @date 2016-11-22 13:42:36
 */
public interface ISysUserService extends BaseService<SysUser, Integer> {

	/**
	 * <p>Description: 添加用户（需要同时添加用户角色关联）</p>
	 * @param sysUser
	 * @param roles List<Integer>
	 * @return
	 * @throws SystemException
	 * @date 2016年11月22日下午11:26:25
	 */
	SysUser addUser(SysUser sysUser, Integer[] roles);
	
	/**
	 * <p>Description: 修改用户状态（1 启用 2 禁用）</p>
	 * @param userId
	 * @param status UserStatusEnum 
	 * @date 2016年11月22日下午11:42:12
	 */
	void updateUserStatus(int userId, UserStatusEnum status);

    PageInfo<SysUser> selectPage(Map<String, Object> params);

    /**
     * 加载用户资源权限
     * @param userId
     * @return
     */
    List<SysRoleResourceVo> loadUserResource(Integer userId);

    /**
     * 密码重置
     * @param resetPassword
     */
	void resetPassword(ResetPasswordVO resetPassword);
	
}
